home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / comm / irc / epic4-mos.lha / share / epic / script / grep < prev    next >
Text File  |  2002-09-18  |  2KB  |  72 lines

  1. #
  2. # grep 1.0 -- adds [e]grep support to the client, neat
  3. # Author --  wd@anduril.org White_Dragon Chip Norkus
  4. # Any deviation from the original is Jeremy Nelson's fault.
  5. #
  6. # Contributed to the EPIC project by Phoengold, on Fri, 14 Apr 2000.
  7. #
  8. # Usage: /grep [-w #] <text>
  9. #     /egrep [-w #] <text>
  10. # Performs a text search on the lastlog of the current/specified window
  11. #
  12. # At the most basic level, /grep searches the lastlog of your current window
  13. # for the specified text.  with the -w option you can specify the window
  14. # whose lastlog you want to use. A regular expression of any sort can be
  15. # used, as well.
  16. #
  17.  
  18. alias grep 
  19. {
  20.     ^local win,exp,re,i,x,l,s.,l.
  21.  
  22.     if (![$0]) 
  23.     {
  24.         echo Usage: /grep [-w #] <text>
  25.         return
  26.     }
  27.         
  28.     @ win = 1
  29.         
  30.         if ([$0] == [-w]) {
  31.                 if (![$2]) {
  32.                         return
  33.                 }
  34.                 @ win = [$1]
  35.                 @ exp = [$2-]
  36.         }{
  37.                 @ exp = [$*]
  38.         }
  39.         
  40.         if (!winlevel($win)) {
  41.         assign -win
  42.         }
  43.         
  44.         @ re = regcomp($exp)
  45.         
  46.         ### grep here, and save the lines
  47.         @ i = getset(LASTLOG)
  48.         @ x = 0
  49.     while (i) 
  50.     {
  51.         l = line($i $win)
  52.                 if (!regexec($re $l))
  53.         {
  54.                         @ s[$x] = l
  55.                         @ l[$x] = i
  56.                         @ x++
  57.                 }
  58.                 @ i--
  59.         }
  60.         @ regfree($re)
  61.         
  62.     echo ------------------ Results of grep: ----------------------
  63.     @ i = 0
  64.         while (i < x) {
  65.                 xecho -nolog $[4]l[$i]: $s[$i]
  66.                 @ i++
  67.         }
  68.     echo ------------------------ End -----------------------------
  69. }
  70.  
  71. #WhiteDragon'Y2K
  72.